package org.shj.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

/**
 * Spring-cloud 的config server 可以将微服务的配置文件通过 Git 仓库的方式集中管理，更改配置文件的值后，微服务不需要重启，则可使用新的配置。
 * 比如： 在Git 仓库中的配置文件为：
 *    microservice-provider-user.properties
 *    microservice-provider-user-dev.properties
 *    microservice-provider-user-test.properties
 *    microservice-provider-user-prod.properties
 * 创建一个 config-label-v2 的分支
 * 
 * 这样就可以使用 config server 的端点获取配置文件的内容。端点与配置文件的映射规则如下：
 * "/{application}/{profile}[/{label}]"
 * "/{application}-{profile}.yml"
 * "/{label}/{application}-{profile}.yml"
 * "/{application}-{profile}.properties"
 * "/{label}/{application}-{profile}.properties"
 * 说明： 
 * {application} 表示微服务的名称， {label} 对应Git仓库的分支，默认是master
 * 本config server启动后， 可使用以下URL 访问到Git仓库master分支的  microservice-provider-user-dev.properties
 *  http://localhost:8070/microservice-provider-user/dev
 *  http://localhost:8070/microservice-provider-user-dev.properties
 * 
 * 另外， Config Server 还提供了加解密功能，需要安装 JCE，
 * 安装JCE 详见：  http://www.oracle.com/technetwork/javase/downloads/jce8-download-2133166.html
 * 启动本程序后，输入：  curl http://localhost:8070/encrypt -d mysecret  会返回一个字符串，表示 mysecret 已被加密
 *        输入：  curl http://localhost:8070/decrypt -d 上面返回的字符串   返回 mysecret 的话，表示能够正常解密
 * 
 * 
 * @author huangjian
 *
 */
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(ConfigServerApplication.class, args);
	}
}
